package com.zhoux.api.io.io;

import java.io.File;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/16 11:23
 *
 * 本类用于递归求文件总大小
 */
public class File_SumRecursion {
    public static void main(String[] args) {
        // 1.指定要求哪个目录的总大小
        // 注意：此文件夹必须真实存在，否则报错
        File f = new File("E:\\SoftwareEngineering\\java\\IO");

        // 2.调用size()求目录大小
        long total = size(f);

        // 3.接收结果并打印
        System.out.println("文件的总大小为:"+total);
    }


    public static long size(File f) {
        //1.列出文件夹中的所有资源
        File[] list = f.listFiles();

        long sum = 0;

        for (int i = 0; i < list.length ; i++) {

            File fs = list[i];
            if (fs.isFile()) {
                sum += fs.length();
            }else if (fs.isDirectory()){
                sum += size(fs);
            }
        }
        return sum;
    }
}

